package com.clm.service;

import com.clm.dto.*;
import com.clm.result.PageResult;
import com.clm.vo.OrderPaymentVO;
import com.clm.vo.OrderStatisticsVO;
import com.clm.vo.OrderSubmitVO;
import com.clm.vo.OrderVO;
import org.springframework.stereotype.Service;

/**
 * @Author dinghuapeng
 * @Date 2023/11/6 20:19
 * @PackageName:com.clm.service
 * @ClassName: OrderService
 * @Description: TODO
 * @Version 1.0
 */
@Service
public interface OrderService {


    OrderSubmitVO subminOrder(OrdersSubmitDTO ordersSubmitDTO);


    /**
     * 订单支付
     * @param ordersPaymentDTO
     * @return
     */
    OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;

//    /**
//     * 支付成功，修改订单状态
//     * @param outTradeNo
//     */
//    void paySuccess(String outTradeNo);

    /**
     * 查询历史订单

     * @return
     */
    PageResult pageResult(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 查看订单详情
     * @param orderId
     * @return
     */
    OrderVO orderDetail(Long orderId);

    void cancel(Long orderId);

    void repetition(Long id);

    /**
     * 商家端客户搜索
     * @param ordersPageQueryDTO
     * @return
     */
    PageResult conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 各个状态的订单数量详情
     * @return
     */
    OrderStatisticsVO statistics();

    void confirm(OrdersConfirmDTO ordersConfirmDTO);

    void rejection(OrdersRejectionDTO ordersRejectionDTO);

    void admincancel(OrdersCancelDTO ordersCancelDTO);

    void delivery(Long id);

    void complete(Long id);


    void reminder(Long id);
}
